#include<stdio.h>
#include<stdlib.h>
typedef struct Node{
	int data;
	struct Node *next;
}NODE,*LinkList;
LinkList create(LinkList L,int n){
	LinkList p,q;
	L=(LinkList)malloc(sizeof(NODE));
	p=L;
	int x;
	for(int i=0;i<n;i++){
		scanf("%d",&x);
		q=(LinkList)malloc(sizeof(NODE));
		q->data=x;
		p->next=q;
		q->next=NULL;
		p=q;
	}
	return L;
}
LinkList traverse(LinkList L){
	LinkList p;
	p=L->next;
	while(p!=NULL){
		printf("%d ",p->data);
		p=p->next;
	}
	return L;
}
LinkList insert(LinkList L,int pos,int val){
	LinkList p,q;
	p=L;
	int i=0;
	while(p!=NULL&&i<pos-1){
		p=p->next;
		i++;
	}
	q=(LinkList)malloc(sizeof(NODE));
	q->data=val;
	q->next=p->next;
	p->next=q;
	return L;
}
LinkList delet(LinkList L,int pos,int *val){
	LinkList p,q;
	p=L;
	int i=0;
	while(p!=NULL&&i<pos-1){
		p=p->next;
		i++;
	}
	q=p->next;
	*val=q->data;
	p->next=q->next;
	free(q);
	q=NULL;
	return L;
}
int main(){
	LinkList L;
	int n,val;
	scanf("%d",&n);
	L=create(L,n);
	insert(L,2,1000);
	traverse(L);
	delet(L,3,&val);
	traverse(L);
	return 0;
} 
